As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option available to these users is an information handling system. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may vary with respect to the type of information handled; the methods for handling the information; the methods for processing, storing or communicating the information; the amount of information processed, stored, or communicated; and the speed and efficiency with which the information is processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems may include or comprise a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.
RAID storage arrays are characterized by the ability to restore or rebuild the information on a drive following a failure. For example, in a Level RAID 5 array, parity information is stored on the drives in the array. If one of the drives fails, it is rebuilt based on the parity information stored on the other drives in the array. In some RAID configurations, including Level 5 RAID arrays, a write to a disk in the disk array is accomplished according to a read-modify-write sequence. The result of a read-modify-write sequence is that the data of the write command is written to the disk and the associated parity strip of the stripe is updated to conform to the data strips of the stripe. When a data strip is modified by a write, the parity strip must likewise change. The execution of a read-modify-write command requires multiple writes, including a write to a data strip and a write to a parity strip. If a read-modify-write operation fails before the completion of the operation, incorrect data could be saved to the data strip and parity strip of the stripe. If a node fails during a read-modify-write operation at a time when only the parity data or only the write data has been committed to the storage array, the parity strip of the data stripe will be incorrect and will not conform to the other data stripes of the array. If at some later point, there is a disk failure in the RAID array, the parity strip cannot be used to reconstruct the data of the stripe of the failed node, as the stripe will result in the reconstruction of corrupted and incorrect data in the reconstructed data strip.